package com.youbo.cloudmall.product;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;



/**
 * SpringCache简化缓存开发
 * 1）、引入依赖
 *      spring-boot-starter-cache    spring-boot-starter-data-redis
 * 2）、写配置
 *      自动配置了缓存管理器RedisCacheManager
 *      配置使用redis作为缓存
 *      spring.cache.type=redis
 * 3)、测试使用缓存
 *     @Cacheable:触发将数据保存到缓存的操作
 *     @CacheEvict:删除缓存
 *     @CachePut：不影响发发执行更新缓存
 *     @Caching：组合以上多个操作
 *     @CacheConfig：在类级别共享缓存的相同配置
 *     1）开启缓存功能 @EnableCaching
 *4)、原理：
 *      CacheAutoConfiguration -> RedisCacheAutoConfiguration->
 *      自动配置了RedisCacheManager -> 初始化所有的缓存->每个缓存决定使用什么配置
 *      ->如果RedisCacheConfiguration有就用已有的，没有就用默认的配置
 *      ->如果想改缓存的配置，只需要给容器中放一个RedisCacheConfiguration即可
 *      ->就会应用到当前RedisCacheManager管理的所有缓存分区中
 * */



@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients(basePackages = "com.youbo.cloudmall.product.feign")
public class CloudmallProductApplication {

    public static void main(String[] args) {
        SpringApplication.run(CloudmallProductApplication.class, args);
    }

}
